package com.yidu.action;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.action.vo.ListenBillOfMaterialVo;
import com.yidu.common.Pages;
import com.yidu.common.Tools;
import com.yidu.domain.ListenBillOfMaterial;
import com.yidu.domain.ListenMusical;
import com.yidu.domain.ListenPurchase;
import com.yidu.service.ListenBillOfMaterialService;
import com.yidu.service.ListenMusicalService;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;

/**
 * @title 物料清单Controller类
 * @author 江宇
 * @dateTime 2019年1月14日
 */
@Controller
@RequestMapping("/listenBillOfMaterial")
public class ListenBillOfMaterialController {
	
	@Resource
	ListenBillOfMaterialService listenBillOfMaterialService;
	
	@Resource
	ListenMusicalService listenMusicalService;
	
	
	/**
	 * @title 查询物料清单 
	 * @param ListenBillOfMaterial
	 * @return List
	 * @author 江宇
	 * @dateTime 2018年12月12日
	 * @versions 1.0
	 */
	@RequestMapping("bomFindAll")
	@ResponseBody
	public List<ListenBillOfMaterial> bomFindAll(ListenBillOfMaterial bom){
		Map<String,Object> map=new HashMap<>();
		//如果乐器ID不为空赋值
		if(!Tools.isEmpty(bom.getMuId())) {
			map.put("muId", bom.getMuId());
		}
		//如果前台传来的页数和行数不为空赋值
		if(bom.getPage()!=null && bom.getLimit()!=null) {
			Pages page=new Pages();
			page.setCurPage(bom.getPage());
			page.setMaxResult(bom.getLimit());
			
			map.put("firstRows", page.getFirstRows());
			map.put("maxResult", page.getMaxResult());
		}
		 
		return listenBillOfMaterialService.bomFindAll(map);
		
	}
	
	

	/**
     * @title 增加物料清单
     * @param ListenBillOfMaterial
     * @return int
     * @author 江宇
     * @dateTime 2018年12月14日
     * @versions 1.0
     */
	@RequestMapping("addBom")
	@ResponseBody
	public int addBom(String configure,String bomIds,String muId){
		int rows=0;
		//按#拆分前台传来的物料清单字符串
		String [] configures=configure.split("#");
		//按#拆分前台传来的物料清单ID字符串
		String [] bomIdss=bomIds.split(",");
		//循环拆分的物料清单ID数组
		for (int i = 0; i < bomIdss.length; i++) {
			//调用删除物料清单的方法
			 rows=listenBillOfMaterialService.deleteBybomId(bomIdss[i]);
		}
		
		//循环拆分的物料清单数组
		for (int i = 0; i < configures.length; i++) {
			//创建物料清单类对象
			ListenBillOfMaterial bom=new ListenBillOfMaterial();
			//UUID主键
			bom.setBomId(Tools.getRandomString(32));
			//材料ID赋值
			bom.setRawstockId(configures[i].split(",")[0]);
			//乐器ID赋值
			bom.setMuId(configures[i].split(",")[1]);
			//配置数量赋值
			bom.setBomNumber(Integer.valueOf(configures[i].split(",")[4]));
			//是否有效(有效)
			bom.setIsva(1);
			
			//调用增加无物料清单的方法
			rows=listenBillOfMaterialService.addBom(bom);
		}
		
		//创建乐器类对象
		ListenMusical mu=new ListenMusical();
		//设置乐器已配置物料清单
		mu.setSort("1");
		//乐器ID赋值
		mu.setMuId(muId);
		//调用修改乐器的方法
		listenMusicalService.updateByPrimaryKeySelective(mu);
		 
		return rows;
		
	}
	
	/**
	 * @title 生产检查材料库存 
	 * @param String
	 * @return List
	 * @author 江宇
	 * @dateTime 2018年12月24日
	 * @versions 1.0
	 */
	@RequestMapping("inspectStock")
	@ResponseBody
	public List<ListenBillOfMaterialVo> inspectStock(String muId){
		 
		return listenBillOfMaterialService.inspectStock(muId);
		
	}
}

